package com.zhihaihe.file.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.zhihaihe.file.pojo.UserFileBean;
import com.zhihaihe.file.vo.file.FileListVo;

import java.util.List;

/**
 * 用户文件类
 * @author
 */
public interface IUserFileService extends IService<UserFileBean> {
    /**
     * 判断文件夹是否存在
     * @param fileName 文件名称
     * @param filePath  文件路径
     * @param userId 用户id
     * @return
     */
    boolean isDirExist(String fileName, String filePath, Long userId);

    /**
     * 根据用户名称，id,文件路径查询用户文件联系表
     * @param fileName 文件名称
     * @param filePath 文件路径
     * @param userId 用户id
     * @return
     */
    List<UserFileBean> selectUserFileByNameAndPath(String fileName, String filePath, Long userId);

    /**
     * 替换用户文件路径
     * @param filePath 文件路径
     * @param oldFilePath 旧文件路径
     * @param userId 用户id
     */
    void replaceUserFilePath(String filePath, String oldFilePath, Long userId);

    /**
     * 分页查询文件
     * @param userFile
     * @param l
     * @param l1
     * @return
     */
    List<FileListVo> userFileList(UserFileBean userFile, Long l, Long l1);

    /**
     * 删除用户文件
     * @param userFileId
     * @param userId
     */
    void deleteUserFile(Long userFileId, Long userId);

    /**
     * 查询文件集合向右模糊匹配路径
     * @param filePath 文件路径
     * @param userId 用户id
     * @return
     */
    List<UserFileBean> selectFileListLikeRightFilePath(String filePath, long userId);

    /**
     * 查看扩展名不符合的文件
     * @param arrList
     * @param beginCount
     * @param pageCount
     * @param userId
     * @return
     */
    List<FileListVo> selectFileNotInExtendNames(List<String> arrList, Long beginCount, long pageCount, long userId);

    /**
     * 查看不在扩展名中计数
     * @param arrList
     * @param beginCount
     * @param pageCount
     * @param userId
     * @return
     */
    Long selectCountNotInExtendNames(List<String> arrList, Long beginCount, long pageCount, long userId);

    List<FileListVo> selectFileByExtendName(List<String> fileExtendsByType, Long beginCount, long pageCount, long userId);

    Long selectCountByExtendName(List<String> fileExtendsByType, Long beginCount, long pageCount, long userId);
}
